package spring.aspectj.c02;

import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.AfterThrowing;
import org.aspectj.lang.annotation.Before;

@org.aspectj.lang.annotation.Aspect
public class Aspect {
	@Before("execution(* spring.aspectj.c02.FooServiceC02Impl.*(..))")
	public void before() {
		System.out.println("---before---");
	}
	@After("execution(* spring.aspectj.c02.FooServiceC02Impl.*(..))")
	public void after() {
		System.out.println("---after---");
	}
	@AfterReturning("execution(* spring.aspectj.c02.FooServiceC02Impl.*(..))")
//	@AfterReturning(pointcut="spring.aspectj.c02.FooServiceC02Impl.exe()",returning="val")
	public void afterReturn() {
		System.out.println("---afterReturn---");
	}
	@AfterThrowing("execution(* spring.aspectj.c02.FooServiceC02Impl.*(..))")
	public void throwEx() {
		System.out.println("---throwEx---");
	}
}
